using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace DataModels.Models
{
    [Table("Report")]
    public partial class Report
    {
        public Report()
        {
            this.ExpectedReports = new List<ExpectedReport>();
            this.ReceivedSMS = new List<ReceivedSM>();
            this.ReportBusinessRules = new List<ReportBusinessRule>();
            this.ReportDatas = new List<ReportData>();
            this.ReportDataLocations = new List<ReportDataLocation>();
            //this.SMSReminderTrackers = new List<SMSReminderTracker>();
        }

        [Key]
        public int RepID { get; set; }

        [StringLength(250)]
        public string ReportName { get; set; }

        [StringLength(50)]
        public string RepVersion { get; set; }

        [StringLength(200)]
        public string RepTemplate { get; set; }

        [StringLength(1000)]
        public string Description { get; set; }

        [StringLength(1000)]
        public string Comments { get; set; }
        public bool UsedAsView { get; set; }
        
        public virtual AutoReminderReportMessageTemplate AutoReminderReportMessageTemplate { get; set; }
        public virtual List<ExpectedReport> ExpectedReports { get; set; }
        public virtual List<ReceivedSM> ReceivedSMS { get; set; }
        public virtual List<ReportBusinessRule> ReportBusinessRules { get; set; }
        public virtual List<ReportData> ReportDatas { get; set; }
        public virtual List<ReportDataLocation> ReportDataLocations { get; set; }
        public virtual List<SMSReminderTracker> SMSReminderTrackers { get; set; }
    }
}
